From afed6f92efe98f4f27ae88df38141acb3a6bba3d Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 1 Apr 2023 23:08:36 -0400 Subject: [PATCH] popover: Stop using gdk_surface_create_similar_surface Just create the cairo image surface ourselves. --- gtk/gtkpopover.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/gtk/gtkpopover.c b/gtk/gtkpopover.c index 9b62721fac..cf90a3bd7d 100644 --- a/gtk/gtkpopover.c +++ b/gtk/gtkpopover.c @@ -1360,15 +1360,17 @@ gtk_popover_update_shape (GtkPopover *popover) cairo_t *cr; graphene_point_t p; double native_x, native_y; + int width, height, scale; gtk_native_get_surface_transform (GTK_NATIVE (popover), &native_x, &native_y); gtk_css_boxes_init (&content_css_boxes, priv->contents_widget); - cairo_surface = - gdk_surface_create_similar_surface (priv->surface, - CAIRO_CONTENT_COLOR_ALPHA, - gdk_surface_get_width (priv->surface), - gdk_surface_get_height (priv->surface)); + width = gdk_surface_get_width (priv->surface); + height = gdk_surface_get_height (priv->surface); + scale = gdk_surface_get_scale_factor (priv->surface); + + cairo_surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, width * scale, height * scale); + cairo_surface_set_device_scale (cairo_surface, scale, scale); cr = cairo_create (cairo_surface); -- 2.30.2